package com.qys.livesMall.shop.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qys.livesMall.common.result.R;
import com.qys.livesMall.framework.view.QysPage;
import com.qys.livesMall.shop.modal.dto.shop.rw.AuditRw;
import com.qys.livesMall.shop.modal.dto.shop.rw.CancelRw;
import com.qys.livesMall.shop.modal.dto.shop.rw.EditRw;
import com.qys.livesMall.shop.modal.dto.shop.rw.ShopRwSearch;
import com.qys.livesMall.shop.modal.dto.shop.rwnew.ShopWlSearch;
import com.qys.livesMall.shop.modal.dto.shop.rwnew.ShopRechargeSearch;
import com.qys.livesMall.shop.modal.vo.ShopRechargeWithdrawalVO;
import com.qys.livesMall.shop.modal.vo.rw.RechargeVO;
import com.qys.livesMall.shop.modal.vo.ShopWithdrawalsStatisticsVO;

import java.math.BigDecimal;
import java.util.Map;

/**
 * <p>
 * 店铺充值提现表 服务类
 * </p>
 *
 * @author
 * @since 2023-06-06
 */
public interface H2ShopRechargeWithdrawalService {

    QysPage<ShopRechargeWithdrawalVO> search(ShopRwSearch search);

    /**
     * 充值
     * @param rw
     * @return
     */
    R recharge(EditRw rw);

    /**
     * 提现
     * @param rw
     * @return
     */
    R withdrawal(EditRw rw);

    /**
     * 审核通过
     * @param auditRw
     * @return
     */
    R auditPass(AuditRw auditRw);

    /**
     * 审核不通过
     * @param auditRw
     * @return
     */
    R auditNoPass(AuditRw auditRw);

    /**
     * 取消
     * @param cancelRw
     * @return
     */
    R cancel(CancelRw cancelRw);

    Page<RechargeVO> shopRechargeStatistics(ShopRechargeSearch reSearch);

    Page<ShopWithdrawalsStatisticsVO> shopWithdrawalsStatistics(ShopWlSearch rwSearch);

    Map getTotalRe(Long shopId);
    Map getTotalWl(Long shopId);

    BigDecimal getTotalWaitWl(Long shopId);

}
